<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Class 类介绍</title>
</head>

<body>
    <h1>Class 类</h1>
    <div>
        ES6 提供了更接近传统语言的写法，引入了Class(类)这个概念，作为对象的模板。通过class关键字，可以定义类。
        基本上，ES6的Class可以看作只是一个语法糖，它的绝大部分功能，ES都可以做到，
        新的class写法只是让对象原型的写法更加清晰、更像面对象编程的语法而已。
        <li>
            Class 声明类
        </li>
        <li>
            constructor 定义构造函数初始化
        </li>
        <li>
            extends 继承父类
        </li>
        <li>
            super 调用父级构造方法
        </li>
        <li>static 定义静态方法和属性</li>
        <li>父类方法可以重写</li>
    </div>
    <script>
        // ES5 创建类
        // function Phone(brand, price){
        //     this.brand = brand;
        //     this.price = price;
        // }

        // Phone.prototype.call = function(){
        //     console.log("遥遥领先");
        // }

        // //实例化对象
        // let HUAWEI = new Phone("Mate60","5999");
        // HUAWEI.call();

        // ES6 class
        class Phone{
            //构造方法 名字不能修改，
            constructor(brand, price){
                this.brand = brand;
                this.price = price;
            }
            //方法必须使用该语法，不能使用call:function
            call(){
                console.log("我可以打电话！！");
            }
        }

        let onePlus = new Phone("一加9Pro","3599");
        console.log(onePlus);
        onePlus.call();
    </script>
</body>
</html>